import http from '@ohos.net.http';
import image from '@ohos.multimedia.image'

const httpRequest = http.createHttp();

/**
 * 处理网络图片显示的问题
 * @description 图片网络地址显示问题处理方法
 * @description 方法一：直接将图片的网络地址直接传入 Image 组件，不会直接显示，需要做处理
 * @example
 * ```
 * 方法二：module.json5 文件，添加权限`module -> requestPermissions`
 * "requestPermissions": [
 *    {
 *       "name": "ohos.permission.INTERNET"
 *    },
 * ]
 * ```
 * @param poster 网络图片地址
 * @returns 经过处理的图片数据
 */
export async function handleWebImage(poster: string) {
  if (!poster) return undefined
  const data = await httpRequest.request(poster)
  const {responseCode, result: res } = data

  if (http.ResponseCode.OK === responseCode) {
    const imgResource = image.createImageSource(<any> res)
    const options = {
      alphaType: 0,
      editable: false,
      pixelFormat: 3,
      scaleMode: 1,
    }
    const pixelMap = imgResource?.createPixelMap(options)
    return pixelMap
  }
  return undefined
}